Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use type information to improve destructive update pass #8621

Merged
merged 2 commits into from
Jun 28, 2024

Conversation

frej
Copy link
Contributor

@frej frej commented Jun 27, 2024

Fix a bug in the alias analysis pass which led to missed optimization opportunities and improve the destructive update pass to use types in order to avoid unnecessary aborts. More details in the individual commit messages.

frej added 2 commits June 27, 2024 10:10
Don't include outgoing embedding edges among the aliasing edges as
they do not contribute to the alias status of the aggregate in which
the node is embedded.

This change corrects errors where aggregates were mistakenly
classified as aliased, but fortunately with regards to compiler
correctness this only leads to missed optimization opportunities.
Make use of type information when tracking initial values during the
destructive update pass. Using argument type annotations allows the
find-initial-values phase of the pass to stop exploring impossible
value chains which previously lead to infinite loops which in turn
made the pass abort.
Copy link
Contributor

github-actions bot commented Jun 27, 2024

CT Test Results

    2 files    324 suites   10m 38s ⏱️
  817 tests   815 ✅ 2 💤 0 ❌
5 420 runs  5 418 ✅ 2 💤 0 ❌

Results for commit 5607e82.

♻️ This comment has been updated with latest results.

To speed up review, make sure that you have read Contributing to Erlang/OTP and that all checks pass.

See the TESTING and DEVELOPMENT HowTo guides for details about how to run test locally.

Artifacts

// Erlang/OTP Github Action Bot

@bjorng bjorng self-assigned this Jun 27, 2024
@bjorng bjorng added team:VM Assigned to OTP team VM enhancement testing currently being tested, tag is used by OTP internal CI labels Jun 27, 2024
@bjorng bjorng merged commit f335c66 into erlang:master Jun 28, 2024
17 checks passed
@frej frej deleted the frej/use-types-for-destructive-update branch July 1, 2024 10:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement team:VM Assigned to OTP team VM testing currently being tested, tag is used by OTP internal CI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants